﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entidades;
using System.Data.SqlClient;
using System.Data;

namespace AccesoDatos
{
    public class PaisAD
    {
        public static List<Pais> SelectAll()
        {
            List<Pais> ListaPaises = new List<Pais>();
            SqlConnection conexion = new SqlConnection(Conexion.CadenaConexion);
            try
            {
                conexion.Open();
                string sql = "PA_Pais_SelectAll";
                SqlCommand comando = new SqlCommand(sql, conexion);
                comando.CommandType = CommandType.StoredProcedure;
                SqlDataReader reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    Pais nuevoPais = new Pais();
                    nuevoPais.ID = Convert.ToInt32(reader["ID"].ToString());
                    nuevoPais.Nombre = reader["Nombre"].ToString();
                    nuevoPais.ISO3 = reader["ISO3"].ToString();
                    nuevoPais.Prefijo = Convert.ToInt32(reader["Prefijo"].ToString());
                    if (!reader["ISO_Moneda"].Equals(DBNull.Value))
                    {
                        nuevoPais.ISO_Moneda = reader["ISO_Moneda"].ToString();
                    }
                    else
                    {
                        nuevoPais.ISO_Moneda = "";
                    }
                    if (!reader["Nombre_Moneda"].Equals(DBNull.Value))
                    {
                        nuevoPais.Nombre_Moneda = reader["Nombre_Moneda"].ToString();
                    }
                    else
                    {
                        nuevoPais.Nombre_Moneda = "";
                    }
                    if (!reader["Tipo_Cambio_Moneda"].Equals(DBNull.Value))
                    {
                        nuevoPais.Tipo_Cambio_Moneda = Convert.ToDecimal(reader["Tipo_Cambio_Moneda"].ToString());
                    }
                    else
                    {
                        nuevoPais.Tipo_Cambio_Moneda = 0;
                    }
                    if (!reader["Comision"].Equals(DBNull.Value))
                    {
                        nuevoPais.Comision = Convert.ToDecimal(reader["Comision"].ToString());
                    }
                    else
                    {
                        nuevoPais.Comision = 0;
                    }

                    ListaPaises.Add(nuevoPais);
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conexion.Close();
            }
            return ListaPaises;
        }

        public static Pais Buscar(int ID)
        {
            Pais nuevoPais = new Pais();
            SqlConnection conexion = new SqlConnection(Conexion.CadenaConexion);
            try
            {
                conexion.Open();
                string sql = "PA_Pais_Buscar";
                SqlCommand comando = new SqlCommand(sql, conexion);
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("@ID", ID);
                SqlDataReader reader = comando.ExecuteReader();
                reader.Read();
                nuevoPais.ID = Convert.ToInt32(reader["ID"].ToString());
                nuevoPais.Nombre = reader["Nombre"].ToString();
                nuevoPais.ISO3 = reader["ISO3"].ToString();
                nuevoPais.Prefijo = Convert.ToInt32(reader["Prefijo"].ToString());
                if (!reader["ISO_Moneda"].Equals(DBNull.Value))
                {
                    nuevoPais.ISO_Moneda = reader["ISO_Moneda"].ToString();
                }
                else
                {
                    nuevoPais.ISO_Moneda = "";
                }
                if (!reader["Nombre_Moneda"].Equals(DBNull.Value))
                {
                    nuevoPais.Nombre_Moneda = reader["Nombre_Moneda"].ToString();
                }
                else
                {
                    nuevoPais.Nombre_Moneda = "";
                }
                if (!reader["Tipo_Cambio_Moneda"].Equals(DBNull.Value))
                {
                    nuevoPais.Tipo_Cambio_Moneda = Convert.ToDecimal(reader["Tipo_Cambio_Moneda"].ToString());
                }
                else
                {
                    nuevoPais.Tipo_Cambio_Moneda = 0;
                }
                if (!reader["Comision"].Equals(DBNull.Value))
                {
                    nuevoPais.Comision = Convert.ToDecimal(reader["Comision"].ToString());
                }
                else
                {
                    nuevoPais.Comision = 0;
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conexion.Close();
            }
            return nuevoPais;
        }
    }
}
